﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rarous.Gryphoon.Data {
  /// <summary>
  /// Rozhranní repository.
  /// </summary>
  /// <typeparam name="T">Typ objektu, pro nějž je repository určeno.</typeparam>
  public interface IRepository<T> {
    /// <summary>
    /// Načte objekt podle id.
    /// </summary>
    /// <param name="id">Id objektu, který chceme načíst.</param>
    /// <returns></returns>
    T Get(int id);
    /// <summary>
    /// Uloží objekt.
    /// </summary>
    /// <param name="obj"></param>
    void Save(T obj);
    /// <summary>
    /// Načte kolekci objektů dle zadaných kritérií.
    /// </summary>
    /// <param name="property"></param>
    /// <param name="value"></param>
    /// <returns></returns>
    ICollection<T> Find(string property, object value);
  }
}
